home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / bootup / boot_a2m / gbell / gbell.man < prev    next >
Text File  |  1995-05-02  |  18KB  |  378 lines

  1. GBELL(1)          GEM action audio effect device          GBELL(1)
  2.  
  3. NAME
  4.      GBell - GemBell
  5.  
  6. IMPORTANT
  7.      Read  the segments titled MAILWARE,  DISCLAIMER and  HARDWARE 
  8.      REQUIREMENTS  before  using/copying this excellent  piece  of 
  9.      software  for your Atari STe/TT/Falcon.  If you're head of  a 
  10.      company, read the NOTICE TO SOFTWARE/HARDWARE COMPANIES.
  11.  
  12. INDEX OF THIS FILE
  13.      Name, Important, Index of this file, Description, Background, 
  14.      Hardware  requirements,   Disclaimer,   Installation,  System 
  15.      vectors,  Cookie jar,  Configuration,  Aes functions,  Future 
  16.      plans, Bugs, Mailware, Notice to software/hardware companies, 
  17.      Norwegian  symbols,   Files,  Author,  See  also,  Scriba  is 
  18.      available from, Thanks to.
  19.  
  20. DESCRIPTION
  21.      GBell is a small and effective program which hooks up to  the 
  22.      GEM trap vector and looks for identifiable system calls, like 
  23.      window_open,  window_close, drag_bar and so on. When a system 
  24.      call has been identified,  an appropriate sample is selected, 
  25.      loaded (if not already present in memory) and replayed by the 
  26.      soundchip.
  27.  
  28.      Which  system call gives which sample is user defined in  the 
  29.      GBELL.INF file as explained below.
  30.  
  31. BACKGROUND
  32.      We are moving into an age where audio is just as important as 
  33.      video. The McIntosh has had the ability to play off different 
  34.      samples at different events for ages,  and not too long  ago, 
  35.      MS  Windows achieved the same thing.  Why shouldn't  this  be 
  36.      possible  on the ST?  Why should we have to look another  way 
  37.      when a McIntosh owner shows off his computer as he opens  the 
  38.      trash  can  and  the trash can goes "Bring  out  your  dead!" 
  39.      (Monty Python quote).
  40.  
  41.      It  is  close  to assume that the best  reason  that  such  a 
  42.      program  hasn't been made is the fact the original ST  didn't 
  43.      have  a  soundchip advanced enough to do  this,  and  so,  no 
  44.      standard  for  sound  handling really showed  up  in  the  ST 
  45.      operating  system.  Most  audio programs go directly  on  the 
  46.      hardware  and therefore,  it is easy to crash with the  other 
  47.      programs.
  48.  
  49.      Another interesting thing is how the system would slow  down. 
  50.      That is, unless you actually use the DMA for replay. And that 
  51.      is exactly what has been done in GBell.  GBell checks if  the 
  52.      soundchip is busy.  If it is,  the it drops the whole  sound, 
  53.      thereby saving us for both time and unwanted interruptions in 
  54.      the soundtrack you were replaying.  If the soundchip is free, 
  55.      then  load  sample if necessary and simply set  the  chip  to 
  56.      replay  that sound from a buffer which cannot be  overwritten 
  57.      by other programs.
  58.  
  59. HARDWARE REQUIREMENTS
  60.      GBell  will  only work with Atari computers that  run  a  TOS 
  61.      compatible operating system and has DMA sound  available.  As 
  62.      of this date,  this indicates a STe,  TT or Falcon.  GBell is 
  63.      preferred run from harddisk, but nobody said you couldn't use 
  64.      it with floppies...
  65.  
  66. DISCLAIMER
  67.      Even  though I can't seem to find any bugs that  will  affect 
  68.      the  reliability  of  your system,  usage  of  this  software 
  69.      package is totally your own responsibility. Thereof, risks of 
  70.      damage or loss of data are completely your own,  and can  not 
  71.      be blamed on the programmer.  But it helps to have the newest 
  72.      update...  8*)
  73.  
  74. INSTALLATION
  75.      Put GBell in auto folder,  as early as  possible.  Preferably 
  76.      before MiNT,  which should be the second program in the  auto 
  77.      folder.
  78.  
  79.      Create a folder on you harddisk for samples. Move all samples 
  80.      into this folder. The create GBELL.INF as instructed later in 
  81.      this file.  GBELL.INF should be put in the root directory  of 
  82.      the boot device.
  83.  
  84. SYSTEM VECTORS
  85.      GBell bends two vectors.  One is the BIOS, trap #13, to catch 
  86.      the  ROM when it installs GEM,  so that GBell's other  vector 
  87.      bending,  trap  #2,  doesn't  disappear  after  boot.  It  is 
  88.      preferred  to  put  GBell as early as possible  in  the  auto 
  89.      folder,  so that it is the last program to install itself  on 
  90.      the  GEM  trap,  thus becoming the first to receive  the  GEM 
  91.      function  call  from the program.  This will allow  GBell  to 
  92.      catch  virtually  any function,  despite of the  presence  of 
  93.      function library replacements,  like file  selectors,  let'em 
  94.      fly and MiNT.
  95.  
  96.      The trap #2 bending is the most interesting one.  This is the 
  97.      part  that  catches the function call,  compares  it  to  the 
  98.      function/sample  table  given  in  the  GBELL.INF  file,  and 
  99.      replays a sample if a match has been found.  Notice, however, 
  100.      that the entire test will be skipped if the soundchip is busy 
  101.      doing something else.
  102.  
  103.      The vector bending follows the XBRA standard,  with the  XBRA 
  104.      ID "GBel".
  105.  
  106. COOKIE JAR
  107.      As   any   other  resident  application  which   alters   the 
  108.      achievements of your STe/TT/Falcon, GBell has its own cookie. 
  109.      The Cookie ID is the same as the XBRA ID,  "GBel". The Cookie 
  110.      data  is a pointer to a GBell variable table,  which  is  the 
  111.      same  kind  of  variable  library  used  in  Scriba  Communis 
  112.      Responsi  for communication between the program and the  menu 
  113.      data. In practice, it is very much like a cookie jar in every 
  114.      way,  except that the NULL cookie does not tell you how  many 
  115.      cookies there are room for.  The point of this is that if the 
  116.      variable  system is expanded or altered,  it shouldn't  cause 
  117.      any application that reads these variables to crash.
  118.  
  119.      Variables for GBell v1.0₧ are:
  120.           VARIABLE  VALUE
  121.            "MAGI"     24892 (Magic number to make sure it's GBell)
  122.            "_VER"     version number
  123.            "BUFF"     *sample buffer (see info on GBELL.INF)
  124.            "SIZE"     sample buffer size
  125.            "TABL"     *action table (what to do when)
  126.            "PATH"     *path name where samples are located
  127.                 0 (end of table)
  128.      Variables marked with a '*' are pointers.
  129.  
  130.      During  installation,  if  there is not enough  cookie  slots 
  131.      left,  GBell will allocate a cookie jar which is twice as big 
  132.      and move all cookies to the new space.
  133.  
  134. CONFIGURATION
  135.      Everything  that  can  be configured  is  configured  in  the 
  136.      GBELL.INF  file.  Keep in mind that the GBELL.INF  file  will 
  137.      only be backward compatible,  not forward.  I.e.,  an unknown 
  138.      command  will  cause the parsing to  break,  and  the  entire 
  139.      installation will be skipped, rather than just the line (this 
  140.      is  true  for  version 1.0₧.  It might be  altered  in  later 
  141.      versions.)  The GBELL.INF file should be located in the  root 
  142.      directory of the boot device.
  143.  
  144.      The  GBELL.INF  file contains ASCII commands to  easily  make 
  145.      your own setup of sounds and functions. The file is loaded at 
  146.      boot  time,  so  altering  it will  not  change  the  current 
  147.      settings before next reboot.
  148.  
  149.      All lines have in common the following synopsis:
  150.  
  151.           <command> <parameters>
  152.  
  153.      The  last  parameter  is always  followed  immediately  by  a 
  154.      new  line.  Spaces  behind the last parameter  will  cause  a 
  155.      parsing error. (v1.0₧)
  156.  
  157.      Parameter descriptions are as follows:
  158.           <string> - a text string as in BASIC.  Must be contained 
  159.                      in quotation marks due to possible spaces  in 
  160.                      quote.  To quote a quotation mark, use double 
  161.                      quotation marks.
  162.           <integr> - an integer between 0 and 65535.
  163.           <byte>   - an integer between 0 and 255.
  164.           <spec>   - a   filename  or  path,   not  contained   in 
  165.                      quotation marks,  since spaces don't give any 
  166.                      nice filenames.
  167.           <sample> - <byte> <byte> <spec>, where the first byte is 
  168.                      replay speed, which is one of the following:
  169.                          0 = 6.26 kHz (Falcon=off)
  170.                          1 = 12.52 kHz
  171.                          2 = 25.04 kHz
  172.                          3 = 50.07 kHz
  173.                      The second byte is sample type,  which can be 
  174.                      one of the following supported:
  175.                          0 = signed 8-bit mono sample
  176.                          1 = unsigned 8-bit mono sample
  177.                      The filespec is the filename of the sample to 
  178.                      replay, relative to the path name given.
  179.      So far, the following commands are supported:
  180.           PATH <spec>
  181.             Sets path to find samples.
  182.           BUFFER <long int>
  183.             Sets size of sample buffer. The samples will be loaded 
  184.             into  this buffer and then replayed.  The same  sample 
  185.             will not load twice in a row,  as GBell keeps track of 
  186.             which  sample is already in the buffer,  and which  is 
  187.             not.  At the time being,  the buffer will only contain 
  188.             one  sample at a time,  meaning that the  buffer  size 
  189.             should be the same as the largest sample to load.
  190.           AES <integr> <sample>
  191.             Activates sample when AES function <integr> is called. 
  192.             See section AES TABLE for a list of AES functions.
  193.           ALERT <string> <sample>
  194.             Activates  sample  when form_alert is  called  with  a 
  195.             string whose beginning is alike the given string.
  196.           ALERTEXT <string> <sample>
  197.             Same as ALERT, but string compare begins at the actual 
  198.             text, thereby skipping the symbol used in the box.
  199.      The tests will be performed in the same order as the commands 
  200.      appear in the GBELL.INF file, and as soon as a match has been 
  201.      found,  the rest is skipped.  Thus,  the exceptions should be 
  202.      entered before the rules.
  203.  
  204. AES FUNCTIONS
  205.      Application initiation/termination
  206.           10   appl_init           19   appl_exit
  207.      Event requests
  208.           20   evnt_keybd          24   evnt_timer
  209.           21   evnt_button         25   evnt_multi
  210.           22   evnt_mouse          27   evnt_dclick
  211.           23   evnt_mesag
  212.      Menu fixes/events
  213.           30   menu_bar            33   menu_tnormal
  214.           31   menu_icheck         34   menu_text
  215.           32   menu_ienable        35   menu_register
  216.      Object functions and events
  217.           42   objc_draw           53   form_error
  218.           50   form_do             55   form_keybd
  219.           51   form_dial           56   form_button
  220.           52   form_alert (see commands ALERT and ALERTEXT)
  221.      Graphical effects and events
  222.           70   graf_rubberbox      74   graf_shrinkbox
  223.           71   graf_dragbox        75   graf_watchbox
  224.           72   graf_movebox        76   graf_slidebox
  225.           73   graf_growbox        78   graf_mouse
  226.      Fileselector
  227.           90   fsel_input          91   fsel_exinput
  228.      Window events
  229.          100   wind_create        102   wind_close
  230.          101   wind_open          103   wind_delete
  231.  
  232. FUTURE PLANS (FOR THIS PIECE OF SOFTWARE)
  233.      Future versions of this program will probably contain one  or 
  234.      more of the following items that are on my todo-list:
  235.           o    OBJECT-command - recognizes when you draw an object 
  236.                which contains a string given as a parameter.
  237.           o    WINAME-command  -  recognizes when  you  give  your 
  238.                window  a  specific name (like including  a  sample 
  239.                every  time  you open a window  which  begins  with 
  240.                "C:\USR\ART\EROTICA")
  241.           o    Static buffer - if internal buffer is too small for 
  242.                sample,   allocate  memory  for  whole  sample   if 
  243.                possible and get rid of it afterwards.
  244.           o    Multi-buffer - if there's room,  keep more than one 
  245.                sample in the buffer at a time, reducing load-time.
  246.           o    GEMDOS-command - recognizes GEMDOS function calls.
  247.           o    EXEC/LAUNCH  - recognizes the launch of a  specific 
  248.                program.
  249.           o    FOPEN - recognizes file handling to a specific file 
  250.                or  file  pattern (like yelling for help  when  you 
  251.                write  to a .PRG file as indication of  a  possible 
  252.                link-virus?)
  253.           o    XBIOS - recognizes XBIOS function calls.
  254.           o    Static  table - possibility to  change  recognition 
  255.                table without resetting.
  256.  
  257. BUGS
  258.      There  are  not any known bugs as far as you  can  call  them 
  259.      bugs.  One  known  _lack_  in  the  program,  however,  is  a 
  260.      recursion  lock.  Meaning,  that  if you put a sample  on  an 
  261.      alertbox,  and you get a diskerror whilst loading the sample, 
  262.      this  produces  another  alertbox which in  turn  causes  the 
  263.      program recursively to reload that sample infinitely till  it 
  264.      works, meaning that you will have to reply to all the "retry" 
  265.      boxes and actually reload everything as many times as it took 
  266.      the program to load the sample perfectly.
  267.  
  268.      This might become dangerous in later versions,  if  you,  for 
  269.      example,  will  be able to put a sample on  "open  file".  To 
  270.      prevent this, I'll include a flag which is set while GBell is 
  271.      active, thus preventing recursion.
  272.  
  273. MAILWARE
  274.      This  program is mailware.  This means that it can be  copied 
  275.      freely all over the world,  as long as all  files,  including 
  276.      this one,  are all intact and follow the package, and nothing 
  277.      is  charged for the copy other than the expenses of  actually 
  278.      copying it,  shipping it and whatever you had to pay for  the 
  279.      disk you copied it onto.
  280.  
  281.      But this is not all.  Because if you enjoy this program  just 
  282.      as much as I do, then some kind of communication is in order. 
  283.      Preferably  snailmail.  Preferably with a photo of  yourself, 
  284.      your  sister,  girl  friend,  mother  or  any  other  female. 
  285.      Alternatively,  you could sample her whisper something to me. 
  286.      Or you could just send her over (if she's not too old or  too 
  287.      young,  of course).  Money donations,  postcards,  valentines 
  288.      cards,   flowers,   air  tickets,   free  holidays,   holiday 
  289.      invitations,  pen  pals,  free  disks,  free  TV  sets,  free 
  290.      computer  upgrades,   free  software,  interviews,  fame  and 
  291.      fortune are all, of course, also appreciated.
  292.  
  293.      The  programmer's address is,  and will remain so until  June 
  294.      1995, as follows:
  295.           Gard Eggesb\oe Abrahamsen,
  296.           PO Box 5061, Larsg\aarden,
  297.           6021 \Aalesund,
  298.           Norway
  299.  
  300.      After that, mail can be redirected through this address:
  301.           Gard Eggesb\oe Abrahamsen,
  302.           PO Box 71,
  303.           6092 Eggesb\oenes,
  304.           Norway
  305.  
  306.      Electronic mail is valid as long as the \Aalesund address:
  307.           Gard.Abrahamsen@mrih.no
  308.  
  309.      Telephonically, these numbers are currently valid:
  310.           7015 5497 (if you're in Norway) Usually after 21:20
  311.           +47 7015 5497 (overseas)      as I'm logged in as long
  312.                                               as possible.
  313.           7008 8812 (if you're in Norway) During the odd weekend
  314.           +47 7008 8812                 or holiday, when I decide
  315.                                                to go home.
  316.  
  317. NOTICE TO SOFTWARE/HARDWARE COMPANIES
  318.      If you think the programmer is doing a great job,  and wishes 
  319.      to put him on your staff, don't hesitate to get in touch. The 
  320.      programmer  is  just a poor student who is  sleeping  through 
  321.      classes  to get papers telling him that he can do the  things 
  322.      he can.  Right now,  this is just above half way through  the 
  323.      bachelor  degree of computer science/engineering (some  crazy 
  324.      mix  of  the two - ask for details).  The programmer  has  10 
  325.      years of programming experience, ranging from Sinclair BASIC, 
  326.      Z80a assembler to C-programming on the PC, GEM programming on 
  327.      the ST as well as a _lot_ of MC680x0 programming.
  328.  
  329.      If you want to pay my education, which so far has put me in a 
  330.      NOK  100'000 (GBP 10'000) debt,  please feel free to  do  so. 
  331.      *grin*
  332.  
  333.      If  you wish to take me up for an interview,  don't  hesitate 
  334.      getting in touch. See my addresses/phone numbers above.
  335.  
  336. NORWEGIAN SYMBOLS                                           ,
  337.      The \oe is written as an 'o' with a slash across it: (/)
  338.                                                           '
  339.                                                            .
  340.      The \aa is written as an 'a' with a circle above it:  A
  341.  
  342. FILES
  343.      GBELL.PRG - The actual program
  344.      GBELL.INF - The GBell sample info script
  345.      GBELL.MAN - This file
  346.           The following samples are to "get you started"
  347.      HALELUJA  - "Halleluja" (Typical Mac sampling)
  348.      SHOOTYOU  - "I'm sorry, but I'm going to have to shoot you"
  349.                     (Monty Python quote)
  350.      BINGSND   - "Ah! I see you have the machine that goes BING"
  351.      HAL4.SND  - "Are you sure you're doing the right decision?"
  352.  
  353. AUTHOR
  354.      Gard Eggesb\oe Abrahamsen, (MAILWARE) January 1994
  355.  
  356. SEE ALSO (Softography)
  357.      Scriba Communis Responsi diskmagazine
  358.      Reverse - the better reversi?
  359.      Memorized - Classic concentration type game
  360.      Catchup - short, quick, effective nntp reader (UNIX)
  361.      PinuP - Pinup Is Not Unlike Pine, email-file reader for ST.
  362.  
  363. SCRIBA IS AVAILABLE FROM
  364.      atari.archive.umich.edu
  365.           ~atari/Magazines/Diskmags/Scriba
  366.      src.doc.ic.ac.uk
  367.           computing/systems/atari/umich/Magazines/Diskmags/Scriba
  368.      ftp.uni-kl.de
  369.           pub/atari/diskmagazines
  370.  
  371. THANKS TO
  372.      Kai Trygve Holst,  co-editor of Scriba Communis Responsi  and 
  373.      programmer  of AntiDote - probably the best virus  killer  on 
  374.      the ST/STe/TT/Falcon, for testing this software on the Falcon 
  375.      and coming up with ideas of things that could be done  better 
  376.      as well as good support during development of this software.
  377.  
  378.